С использованием хранилища процесс разработки выглядел стандартно. Сначала из хранилища текст пишущейся программы забирался на рабочий компьютер. В него вносились правки, добавлялись новые фрагменты и тексты программ, что-то убиралось, а потом итоговый результат отправлялся назад в хранилище. С помощью централизованного хранилища с текстом одной программы могли работать люди в разных уголках планеты, достаточно было только подключиться к интернету.
Вот такое хранилище для программ и проектов немца Шура собирался организовать на своей основной работе. В Корпорациях под хранилище обычно выделялся отдельный компьютер в серверной, а иногда этот компьютер и вовсе располагался в стране заказчика. Но на компьютерах немца Шура заводить хранилище не рискнул, потому что за их безопасность отвечал некий польский инженер, который уже полгода никак не мог поставить защиту на канал обмена данными и обеспечить надёжность работы. Не доверяя вражеским инженерам, Шура хотел всё сделать сам, с нужным уровнем защиты и скорости работы, но времени для этого у него не было. А пока использовали хранилище, организованное Ишаковым где-то на своей работе в предприятии связи.
Технические читатели-специалисты к этому моменту уже прочувствовали весь масштаб разгильдяйства и отсутствия организации, с которыми пришлось столкнуться нашему герою на новом месте. А для неспециалистов добавим, что стандартные процедуры вроде подключения к системе учёта заданий, доступа в хранилище и прочие организационные моменты в нормальных компаниях занимают от силы несколько дней. Здесь же всё растянулось даже не на недели, а на целые месяцы со всеми вытекающими последствиями и неудобствами.
Единственная вещь, которую сделали более-менее вовремя, – это доступ на склад. В среде компьютерщиков он обычно называется файловым сервером, но в этой книге для простоты мы будем использовать слово склад. В отличие от хранилища, склад служил для хранения не только текстов программ, но и вообще любых рабочих документов, инструментов и материалов. Через склад шёл обмен проектной документацией, инструкциями к программам, аудиозаписями, вспомогательными программными блоками и многими другими вещами вплоть до рекламных видеороликов конкурентов и партнёров. До подключения к хранилищу Андрей обменивался с Шурой текстами программы именно через склад, хотя в современном мире разработки такой способ нигде и никогда не используется.
Закончив с предыдущими заданиями, Андрей перешёл к следующему, уже более интересному и содержательному. Новое задание заключалось в создании виртуального музыкального проигрывателя, или плеера. Плеер должен был быть похож на уже знакомый виртуальный магнитофон, но без возможности вести запись с микрофона. Его предстояло собрать из блока управления звуком, блока управления устройствами и соединить их в небольшую программу для будущего использования секретаршами. Секретарши с помощью этого плеера смогут прослушивать аудиозаписи, попутно набирая текст руками, а ногами нажимая на педали для воспроизведения или перемотки.
Требования к плееру также включали любопытную возможность «поменять ногу», то есть если секретарша была левшой, то педали перемотки менялись местами. Кроме того, педали должны были работать в двух разных режимах. В первом режиме для воспроизведения или перемотки аудиозаписи педаль удерживалась в нажатом состоянии. Во втором режиме достаточно было нажать на педаль один раз, а затем отпустить – и воспроизведение или перемотка продолжались сами, то есть в этом случае не было необходимости постоянно держать ногу на педали. Имелась также возможность ускорения процесса воспроизведения, то есть чтобы речь доктора в наушниках звучала быстрее, чем он изначально диктовал аудиозапись в микрофон. Таким образом существенно экономилось время секретарши: пятиминутную запись она могла прослушать за четыре минуты или даже быстрее. По окончании прослушивания должен был звенеть звоночек, который указывал, что текущая аудиозапись закончилась и можно переходить к следующей.
Шура продолжал радовать своим профессионализмом. Даже при выполнении сравнительно простых заданий Андрей всегда чему-то учился у старшего коллеги. От Шуры он узнал много разных тонкостей, необходимых для создания профессиональных компьютерных программ. Вообще говоря, Андрея поражало, как быстро и оперативно Шура реагировал на его вопросы. С любой, даже самой нетривиальной проблемой, он помогал практически мгновенно. В крайнем случае – быстро находил решение в интернете или подсказывал, в какую сторону нужно копать. Андрею было даже несколько неудобно отвлекать Шуру по разным мелочам, но по своему опыту он понимал, что задавание даже мелких вопросов – необходимая часть процесса обучения и включения в проект нового человека.
Плеер предстояло использовать клиентам из нескольких разных стран. Поэтому надписи на кнопках и других элементах программы нужно было переводить на разные иностранные языки. Для начала Андрей сделал набор надписей на русском и английском, но клиенты хотели ещё и немецкий вариант. Все слова и надписи, которые встречались в программе и требовали перевода, записывались в отдельную табличку. Эта табличка отсылалась немцу на перевод, тот вписывал туда соответствующие выражения на немецком, а затем присылал назад Шуре. Андрей смотрел в эту табличку, брал из неё переведённые надписи и переносил в нужные места по тексту программы. Так осуществлялся перевод программы на разные языки, что в среде компьютерщиков называется словом локализация.
Андрей очень увлёкся созданием плеера и к очередным выходным с этим заданием почти закончил. Оставалось ещё несколько мелких моментов, к которым планировалось вернуться в понедельник, но не тут-то было. Шура сказал, что немец хочет результат уже к воскресенью. Планы Андрея на отдых сорвались, он уткнулся в виртуальную комнату с друзьями и поспешил пожаловаться на несправедливость.
– Немец к воскресенью хочет плеер. Не получится у меня выбраться.
– Что значит к воскресенью? Слушай, если тебе дают задание «к воскресенью», срочно меняй работу. Совсем охренели.
– Да ладно, надо сделать. Неудобно перед Шурой. Ему же мозги будут компостировать.
Закончив, он ещё немного поигрался с плеером, полюбовался на своё произведение, послушал на нём музыку и решил отдавать на проверку. Например, в Корпорации проверкой программ занимались специалисты отдела контроля качества. На крупных проектах требовался даже не один специалист, а целая команда проверяющих. Их ещё называли тестировщиками, или тестерами, и в Корпорации было целое подразделение тестировщиков разного уровня. А вот были ли тестеры на новом месте, Андрей не знал и обратился с этим вопросом к Шуре.
– У нас этим кто-нибудь занимается или сами?
– Сами проверяем тщательно. Ну и немец смотрит. А потом пользователи. Если пользователи замечают сбой, сообщают немцу. А он передаёт нам.
Звучало слегка удивительно. Любой программист, конечно, многократно перепроверял своё творение перед сдачей, но наличие тестеров в проекте существенно экономило время и облегчало жизнь всем членам команды. Впрочем, на фоне общего бардака на этой работе отсутствию стандартного процесса проверки удивляться не стоило.
Хм… Интересно… И не надоедает немцу?.. Самому проверять всё… Ну а пользователям отдавать сбойный продукт вообще как-то нехорошо… Тем более в больницу… Хотя с другой стороны… Если там обнаружат ошибку – сразу же сообщат нам… И тут же видно будет, с какими они проблемами сталкиваются… Потому что обратная связь практически мгновенная… Да… Есть и свои плюсы в таком подходе…
Так или иначе, пилотным выпуском плеера все были довольны. Программа оказалась компактной, удобной, надёжной и быстрой.
Тем временем пришло время ехать в посольство за результатом. По дороге Андрей сильно волновался. Выстояв очереди и получив в окошке паспорт, он отошёл на пару шагов в сторону и судорожно принялся его листать. Дали – не дали? Заветный штамп быстро нашёлся на первых страничках. Он получил визу, и наступил следующий этап выездных хлопот. Но сперва – поделиться радостью в виртуальных комнатах.
– Дали шенген!
– Поздравляем. Купил уже себе фрак на церемонию? Дресс-код там и всё такое.
Последний раз он надевал костюм на школьный выпускной и государственные экзамены в университете. С тех пор костюм неприкасаемо висел в шкафу, а неотъемлемой частью повседневного гардероба были джинсы и свитер.
– Тут ребята пишут, смотрели фотографии прошлых лет. Фраков и вечерних платьев там нету, но костюмы с красивыми галстуками имели место.
– Они хотели сказать, что среди раздолбайских одёжек разглядели пару классических костюмов.